﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.ServiceModel;
    using System.ServiceModel.Channels;

    [GeneratedCode("System.ServiceModel", "3.0.0.0"), DebuggerStepThrough]
    public class RecordingPortClient : ClientBase<RecordingPort>, RecordingPort
    {
        public RecordingPortClient()
        {
        }

        public RecordingPortClient(string endpointConfigurationName) : base(endpointConfigurationName)
        {
        }

        public RecordingPortClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress)
        {
        }

        public RecordingPortClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public RecordingPortClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public string CreateRecording(RecordingConfiguration RecordingConfiguration)
        {
            return base.Channel.CreateRecording(RecordingConfiguration);
        }

        public string CreateRecordingJob(ref RecordingJobConfiguration JobConfiguration)
        {
            return base.Channel.CreateRecordingJob(ref JobConfiguration);
        }

        public string CreateTrack(string RecordingToken, TrackConfiguration TrackConfiguration)
        {
            return base.Channel.CreateTrack(RecordingToken, TrackConfiguration);
        }

        public void DeleteRecording(string RecordingToken)
        {
            base.Channel.DeleteRecording(RecordingToken);
        }

        public void DeleteRecordingJob(string JobToken)
        {
            base.Channel.DeleteRecordingJob(JobToken);
        }

        public void DeleteTrack(string RecordingToken, string TrackToken)
        {
            base.Channel.DeleteTrack(RecordingToken, TrackToken);
        }

        public RecordingConfiguration GetRecordingConfiguration(string RecordingToken)
        {
            return base.Channel.GetRecordingConfiguration(RecordingToken);
        }

        public RecordingJobConfiguration GetRecordingJobConfiguration(string JobToken)
        {
            return base.Channel.GetRecordingJobConfiguration(JobToken);
        }

        public GetRecordingJobsResponseItem[] GetRecordingJobs()
        {
            GetRecordingJobsRequest request = new GetRecordingJobsRequest();
            return ((RecordingPort) this).GetRecordingJobs(request).JobItem;
        }

        public RecordingJobStateInformation GetRecordingJobState(string JobToken)
        {
            return base.Channel.GetRecordingJobState(JobToken);
        }

        public GetRecordingsResponseItem[] GetRecordings()
        {
            GetRecordingsRequest request = new GetRecordingsRequest();
            return ((RecordingPort) this).GetRecordings(request).RecordingItem;
        }

        public RecordingServiceCapabilities GetServiceCapabilities()
        {
            return base.Channel.GetServiceCapabilities();
        }

        public TrackConfiguration GetTrackConfiguration(string RecordingToken, string TrackToken)
        {
            return base.Channel.GetTrackConfiguration(RecordingToken, TrackToken);
        }

        public void SetRecordingConfiguration(string RecordingToken, RecordingConfiguration RecordingConfiguration)
        {
            base.Channel.SetRecordingConfiguration(RecordingToken, RecordingConfiguration);
        }

        public void SetRecordingJobConfiguration(string JobToken, ref RecordingJobConfiguration JobConfiguration)
        {
            base.Channel.SetRecordingJobConfiguration(JobToken, ref JobConfiguration);
        }

        public void SetRecordingJobMode(string JobToken, string Mode)
        {
            base.Channel.SetRecordingJobMode(JobToken, Mode);
        }

        public void SetTrackConfiguration(string RecordingToken, string TrackToken, TrackConfiguration TrackConfiguration)
        {
            base.Channel.SetTrackConfiguration(RecordingToken, TrackToken, TrackConfiguration);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetRecordingJobsResponse RecordingPort.GetRecordingJobs(GetRecordingJobsRequest request)
        {
            return base.Channel.GetRecordingJobs(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetRecordingsResponse RecordingPort.GetRecordings(GetRecordingsRequest request)
        {
            return base.Channel.GetRecordings(request);
        }
    }
}

